AboutGamesStuffMusicAffiliates |
OVO Vector ObjectOVO is a primitive file format for vector-based geometry, typically 3D meshes. DownloadsSpecification document (Version 1, 2021.04.24) Sample implementation of a parser (java) Import/Export plugin for Blender 2.79 (2024.07.24) Import/Export plugin for Blender 2.8+ (2023.06.20, unmaintained) (If you want to use this for modern Blender you will have to repair the plugin as they introduce breaking changes every update, I do not maintain it as I have no reasons to depart from 2.79.) ExampleThis example OVO format file defines a flat rectangle spanning from -1 to 1 on the x and y axes. All vertices have a normal pointing in the +z direction. The vertices have texture coordinates spanning from 0 to 1, in such a way that it would paint a whole texture in its natural orientation. The vertices are assembled into a rectangle consisting of two triangles. Note this example has no vertex groups (e.g. for skinning) and no primitive groups (e.g. for materials). Their omission is valid, but they would typically be present. METADATA 1
ovo_version:1
VERTICES [v:2 n:3 t0:2] 4
-1 -1 0 0 1 0 0
1 -1 0 0 1 1 0
-1 1 0 0 1 0 1
1 1 0 0 1 1 1
PRIMITIVE_LISTS 1
TRIANGLES 6
0 1 2
2 1 3
Features
MotivationMost 3D model formats are very complicated and pack many types of objects into the same file, often embedding materials, shaders, textures, armatures, animation frame data, and, in some cases, entire scenegraphs. This makes them difficult and uncomfortable to use for programmers developing their own engines:
On the other hand, the available simple 3D model formats are typically just a bad match for how 21st century 3D graphics actually work, and lack support for essential features like weighted vertex groups, multiple UV maps, vertex colours, etc. My first attempt at resolving these issues consisted of extending the Wavefront OBJ format to support weighted vertex groups and some ad-hoc annotations (Blender plugin). However, I still lacked support for additional vertex attributes. Furthermore, the fact is OBJ has an antiquated structure that requires substantial processing to be converted into a form suitable for rendering today. The OVO format is a compact solution to these issues. |
| OwO |